package org.yonggan.cmcc.report.biz

import org.apache.spark.rdd.RDD
import org.yonggan.cmcc.cache.JedisPoolUtil

/**
  *
  * 统计中数据量
  */
object RechargeTotalData {

  /**
    * 实时统计总量数据
    */
  def realTimeGrossData(rdd: RDD[(List[Double],String,String,String,String)]) = {
    //   计算业务概况 receiveNotifyTime
    //   组转成为List : (订单总量 ,成功订单量， 金额 ，支付时长) , 省份编码 ,day h m）
    val reslutRDD: RDD[(String, List[Double])] = rdd.map(f => (f._3, f._1))
      .reduceByKey((lst1, lst2) => {
        lst1.zip(lst2).map((m => m._1 + m._2))
      })

    reslutRDD.foreach(println)

//    // rdd 分区存储数据
    reslutRDD.foreachPartition(it => {
      //redis存储统计数据
      val jedis = JedisPoolUtil.getJedis

      it.foreach(f => {
        val lst: List[Double] = f._2
        // 总订单量
        jedis.hincrBy("G-" + f._1, "total", f._2(0).toLong)
        // 成功订单量
        jedis.hincrBy("G-" + f._1, "succ", f._2(1).toLong)
        // 总金额
        jedis.hincrByFloat("G-" + f._1, "money", f._2(2))
        //casttime
        jedis.hincrByFloat("G-" + f._1, "casttime", f._2(3))

      })
      jedis.close()
    })
  }
}
